package sliceformUtils;

import java.util.ArrayList;
import java.util.Iterator;

import pluginUtils.Circle3D;
import pluginUtils.Plane;

/** Specifique pour les cyclides de Dupin : 
 * Une image a imprimer : 
 * un cercle, un plan (implicitement contenu dans le cercle 3D, et un ensemble de droites
 * intersection du plan avec les plans des autres cercles
 * et eventuellement un deuxieme cercle
 * @author decomite
 *
 */
public class ImagePlan implements Iterable<DroiteSpace3D>{

	public Circle3D getCercle() {
		return cercle;
	}

	public Plane getLePlan() {
		return lePlan;
	}

	protected Circle3D cercle; 
	protected Plane lePlan; 
	protected ArrayList<DroiteSpace3D> lesDroites=new ArrayList<DroiteSpace3D>(); 
	protected Circle3D secondCircle=null;  // n'existe que pour les cercles alpha
	
	public ImagePlan(Circle3D c){
		this.cercle=c; 
		this.lePlan=c.getPlan(); 
	}
	
	public boolean add(DroiteSpace3D d){
		return this.lesDroites.add(d); 
	}

	@Override
	public Iterator<DroiteSpace3D> iterator() {
		return this.lesDroites.iterator(); 
	}
	
	public void setSecondCircle(Circle3D c){
		this.secondCircle=c; 
	}
	
	public Circle3D getSecondCircle(){
		return this.secondCircle; 
	}
	
}
